Croquet Project
   HOME

TheInfoList



OR:

Croquet OS is a web-based
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
for creating three-dimensional apps with
multi-user Multi-user software is computer software that allows access by multiple users of a computer. Time-sharing systems are multi-user systems. Most batch processing systems for mainframe computers may also be considered "multi-user", to avoid leaving t ...
functionalities that run simultaneously on any device. Croquet can be used for
communication Communication (from la, communicare, meaning "to share" or "to be in relation with") is usually defined as the transmission of information. The term may also refer to the message communicated through such transmissions or the field of inquir ...
, online gaming environments such as
massively multiplayer online role-playing game A massively multiplayer online role-playing game (MMORPG) is a video game that combines aspects of a role-playing video game and a massively multiplayer online game. As in role-playing games (RPGs), the player assumes the role of a Player charac ...
s (MMORPGs), 3D
wiki A wiki ( ) is an online hypertext publication collaboratively edited and managed by its own audience, using a web browser. A typical wiki contains multiple pages for the subjects or scope of the project, and could be either open to the pu ...
s, virtual learning and problem solving environments, privately maintained or interconnected multi-user virtual environments, and more advanced functions such as highly scalable collaborative data visualization,
resource sharing In computing, a shared resource, or network share, is a computer resource made available from one host to other hosts on a computer network. It is a device or piece of information on a computer that can be remotely accessed from another compu ...
, and synchronous computation among multiple users.


History

The original authors of Croquet opened a commercial company named Qwaq which was later renamed to Teleplace. That technology was later sold back to a group of the original Croquet developers and became Immersive Terf. Croquet is the confluence of several independent lines of work that were being carried out by its six principal architects,
Alan Kay Alan Curtis Kay (born May 17, 1940) published by the Association for Computing Machinery 2012 is an American computer scientist best known for his pioneering work on object-oriented programming and windowing graphical user interface (GUI) d ...
, David A. Smith. David P. Reed,
Andreas Raab Squeak is an object-oriented, class-based, and reflective programming language. It was derived from Smalltalk-80 by a group that included some of Smalltalk-80's original developers, initially at Apple Computer, then at Walt Disney Imagineerin ...
,
Julian Lombardi Julian Lombardi (born November 11, 1956) is an American inventor, author, educator, and computer scientist known for his work with socio-computational systems, scalable virtual world technologies, and in the design and deployment of deeply col ...
, and
Mark McCahill Mark Perry McCahill (born February 7, 1956) is an American computer scientist and Internet pioneer. He has developed and popularized a number of Internet technologies since the late 1980s, including the Gopher protocol, Uniform Resource Locators ...
. The present identity of the project has its origins in a conversation between Smith and Kay in 1990, where both expressed their frustration with the state of operating systems at the time. In 1994, Smith built ICE, a working prototype of a two user collaborative system that was a predecessor of the core of what Croquet is today. Also in 1994 Mark McCahill's team at the
University of Minnesota The University of Minnesota, formally the University of Minnesota, Twin Cities, (UMN Twin Cities, the U of M, or Minnesota) is a public university, public Land-grant university, land-grant research university in the Minneapolis–Saint Paul, Tw ...
developed
GopherVR GopherVR is an enhanced Internet Gopher client that includes a 3D visualization tool for viewing resource collections as 3D scenes. It explored how people outside of formal research laboratories could use spatial metaphors to access information. Th ...
, a 3D user interface to
Internet Gopher The Gopher protocol () is a communication protocol designed for distributing, searching, and retrieving documents in Internet Protocol networks. The design of the Gopher protocol and user interface is menu-driven, and presented an alternative to ...
to explore how spatial metaphors could be used to organize information and create social spaces. In 1996, Julian Lombardi approached Smith to explore the development of highly extensible collaborative interfaces to the
World Wide Web The World Wide Web (WWW), commonly known as the Web, is an information system enabling documents and other web resources to be accessed over the Internet. Documents and downloadable media are made available to the network through web se ...
. Later, in 1999, Smith built a system called OpenSpace, which was an early-bound variant of Croquet. Also in 1999, Lombardi began working with Smith on prototype implementations of highly extensible collaborative online environments based on OpenSpace. One of these implementations was a prototype implementation of ViOS, a way to spatially organize all
Internet The Internet (or internet) is the global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a '' network of networks'' that consists of private, pub ...
-deliverable resources (including web pages) into a massively-scaled multi-user 3D environment. Smith and Kay officially started the Croquet Project in late 2001 and were immediately joined by David Reed and Andreas Raab. Reed brought to the project his longstanding work on massively scalable
peer-to-peer Peer-to-peer (P2P) computing or networking is a distributed application architecture that partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants in the network. They are said to form a peer-to-peer n ...
messaging architectures in a form deriving from his
doctoral dissertation A thesis ( : theses), or dissertation (abbreviated diss.), is a document submitted in support of candidature for an academic degree or professional qualification presenting the author's research and findings.International Standard ISO 7144: ...
that was published in 1978. The first working Croquet code was developed in January 2002. Simultaneously and independently, Lombardi and McCahill began collaborating on defining and implementing highly scalable and enterprise-integrated architectures for multi-user collaboration and were invited by Kay to join the core architectural group in 2003. From 2003 to 2006, the technology was developed under the leadership of its six principal architects with financial support from
Hewlett-Packard The Hewlett-Packard Company, commonly shortened to Hewlett-Packard ( ) or HP, was an American multinational information technology company headquartered in Palo Alto, California. HP developed and provided a wide variety of hardware components ...
, Viewpoints Research Institute Inc., the
University of Wisconsin–Madison A university () is an educational institution, institution of higher education, higher (or Tertiary education, tertiary) education and research which awards academic degrees in several Discipline (academia), academic disciplines. Universities ty ...
,
University of Minnesota The University of Minnesota, formally the University of Minnesota, Twin Cities, (UMN Twin Cities, the U of M, or Minnesota) is a public university, public Land-grant university, land-grant research university in the Minneapolis–Saint Paul, Tw ...
, Japanese National Institute of Communication Technology (NICT), and private individuals. On April 18, 2006 the project released a
beta version A software release life cycle is the sum of the stages of development and maturity for a piece of computer software ranging from its initial development to its eventual release, and including updated versions of the released version to help impro ...
of th
Croquet
SDK 1.0 in the open-source. Since then, the Croquet technology infrastructure has been successfully used by private industry to build and to deploy commercial-grade closed source collaborative applications. Open source production-grade software implementations for delivering secure, interactive, persistent, virtual workspaces for education and training have at the same time been developed and deployed at the University of Minnesota, University of Wisconsin–Madison,
University of British Columbia The University of British Columbia (UBC) is a public university, public research university with campuses near Vancouver and in Kelowna, British Columbia. Established in 1908, it is British Columbia's oldest university. The university ranks a ...
, and
Duke University Duke University is a private research university in Durham, North Carolina. Founded by Methodists and Quakers in the present-day city of Trinity in 1838, the school moved to Durham in 1892. In 1924, tobacco and electric power industrialist James ...
. In May 2018, David A. Smith founded Croquet Corporation. Alan Kay’s team of engineers, Vanessa Freudenberg, Aran Lunzer, Yoshiki Ohshima, as well as
Smith Smith may refer to: People * Metalsmith, or simply smith, a craftsman fashioning tools or works of art out of various metals * Smith (given name) * Smith (surname), a family name originating in England, Scotland and Ireland ** List of people wi ...
’s collaborator from
Red Storm Entertainment Red Storm Entertainment, Inc. is an American video game developer and studio of Ubisoft based in Cary, North Carolina. Founded in November 1996 between author Tom Clancy, manager Doug Littlejohns, and software development company Virtus Corpo ...
, Brian Upton, joined Smith as co-founders of Croquet Corporation, to build a software system for creating multi-user digital experiences on the web. Croquet lets developers build real time multi-user apps without writing a single line of server code, or deploying or managing any servers. Croquet consists of a
JavaScript library A JavaScript library is a library of pre-written JavaScript code that allows for easier development of JavaScript-based applications, especially for AJAX and other web-centric technologies. Libraries With the expanded demands for JavaScript, an ea ...
that grants access to its global network of public reflectors. In 2020, the company raised its first round of funding. The company is based in
Los Angeles Los Angeles ( ; es, Los Ángeles, link=no , ), often referred to by its initials L.A., is the largest city in the state of California and the second most populous city in the United States after New York City, as well as one of the world' ...
,
California California is a U.S. state, state in the Western United States, located along the West Coast of the United States, Pacific Coast. With nearly 39.2million residents across a total area of approximately , it is the List of states and territori ...
.


Features

*It is platform and device independent *Users and developers may freely share, modify and view the source code of the whole system, due to a liberal license *The technology is not hosted on one organization's server, and hence not governed by any such organization *It provides a complete professional programmer's language (Squeak Smalltalk),
integrated development environment An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools a ...
(IDE), and
class library In computer science, a library is a collection of non-volatile resources used by computer programs, often for software development. These may include configuration data, documentation, help data, message templates, pre-written code and subro ...
in every distributed, running participant's copy; the programming development environment itself is simultaneously shareable and extensible *Croquet based worlds can also be updated while the system is live and running


Technical functions

Croquet is a software development kit (SDK) for use in developing collaborative
virtual world A virtual world (also called a virtual space) is a computer-simulated environment which may be populated by many users who can create a personal avatar, and simultaneously and independently explore the virtual world, participate in its activities ...
applications. Applications created using the Croquet SDK are automatically collaborative since application
objects Object may refer to: General meanings * Object (philosophy), a thing, being, or concept ** Object (abstract), an object which does not exist at any particular time or place ** Physical object, an identifiable collection of matter * Goal, an ...
in Croquet share a common protocol allowing them to cooperate with each other by employing the principle of replicated computation (synchronization) together with a peer-based messaging protocol. The technology is designed to facilitate such replication between peers, to greatly reduce the overhead needed for widespread deployment of collaborative virtual worlds. This efficiency, combined with the ability to deploy Croquet-based virtual worlds on consumer-level hardware, makes it possible for developers to deploy large-scale and highly participatory collaborative worlds at very low cost compared with virtual world technologies that are entirely dependent on server-based infrastructures to support the activities of their users.


Virtual machine

Croquet's
virtual machine In computing, a virtual machine (VM) is the virtualization/emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized hardw ...
(VM) runs bit identically on multiple platforms, and supports multiple abilities that could only be provided by a true late bound, message sending language. Croquet's relationship to
Squeak Squeak is an object-oriented, class-based, and reflective programming language. It was derived from Smalltalk-80 by a group that included some of Smalltalk-80's original developers, initially at Apple Computer, then at Walt Disney Imagineering, ...
gives Croquet the property of a purely
object-oriented Object-oriented programming (OOP) is a programming paradigm based on the concept of " objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of p ...
system allowing for significant flexibility in the design and the nature of the protocols and architectures that have been developed for the system. Because of this, Croquet has the ability to keep running while code is modified and tested, while changes are made, an essential part of the Croquet collaborative development ability. Users can change the code running the environment while the environment runs.


Synchronization architecture

Croquet's time-based synchronization abilities enable
real-time Real-time or real time describes various operations in computing or other processes that must guarantee response times within a specified time (deadline), usually a relatively short time. A real-time process is generally one that happens in defined ...
, identical interactions between groups of users while dramatically reducing the need for server infrastructures to support virtual world deployment. Croquet's architecture makes it easy to develop deeply collaborative applications without having to spend a lot of effort and expertise in understanding how replicated applications work. TeaTime is a scalable real-time multi-user architecture that is the basis for Croquet's object-object communication and synchronization. It is designed to support multi-user applications that can be scaled to massive numbers of concurrently interacting users in a shared virtual space. The most directly visible part of this architecture is the TObject class which is used to define and construct subclassed Tea objects. All of the interesting objects inside of Croquet are constructed from subclasses of TObject. A Tea object acts with the property that messages sent to it are redirected to replicated copies of itself on other users' participating machines in a
peer-to-peer network Peer-to-peer (P2P) computing or networking is a distributed application architecture that partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants in the network. They are said to form a peer-to-peer n ...
. This messaging protocol supports a coordinated distributed
two-phase commit In transaction processing, databases, and computer networking, the two-phase commit protocol (2PC) is a type of atomic commitment protocol (ACP). It is a distributed algorithm that coordinates all the processes that participate in a distributed ...
that is used to control the progression of computations at participating user sites. In this way messages may be dynamically redirected to large numbers of users while maintaining the appropriate deadline-based scheduling. Thus, TeaTime is designed to allow for a great deal of adaptability and resilience and works on a heterogeneous set of resources. It is a framework of abstraction that works over a range of implementations and that can be evolved and tuned over time, both within an application and across applications. Key elements of the TeaTime synchronization architecture include: *A coordinated universal timebase embedded in communication protocol *Replicated, versioned objects that unify replicated computation and distribution of results *Replication strategies that separate the mechanisms of replication from the behavioral semantics of objects *Deadline-based scheduling extended with failure and nesting *Coordinated, distributed two-phase commit that is used to control the progress of computations at multiple sites, to provide resilience, deterministic results, and adaptation to available resources *Uses distributed sets


See also

*
Open Cobalt Open Cobalt is a free and open-source software platform for constructing, accessing, and sharing virtual worlds both on local area networks or across the Internet, with no need for centralized servers. The technology makes it easy to create deep ...
: a Croquet
fork In cutlery or kitchenware, a fork (from la, furca 'pitchfork') is a utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tine (structural), tines with which one ...
*
Open Wonderland Open Wonderland (originally Project Wonderland) is a Java open-source toolkit for creating collaborative 3D virtual worlds. Within those worlds, users can communicate with high-fidelity, immersive audio, share live desktop applications and doc ...
: a
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
-based open source 3D toolkit to create collaborative virtual worlds *
Unreal Engine Unreal Engine (UE) is a 3D computer graphics game engine developed by Epic Games, first showcased in the 1998 first-person shooter game '' Unreal''. Initially developed for PC first-person shooters, it has since been used in a variety of g ...


References


Introductory papercopy
on archive.org) describing Croquet by David Smith and Alan Kay
C5 Conference
and related papers


External links


Official website
croquet.io

Viewpoints Research Institute (VPRI)
Interview
with Julian Lombardi at The Coalition for Networked Information's 2007 Fall Task Force Meeting.
Video
by David Smith & Alan Kay done for a talk at Stanford (2003)

done for the O'Reilly etech by David Smith & Alan Kay (broken up into nice bite-size chunks, also includes Kay's full Squeak demo) {{Smalltalk programming language 3D GUIs 3D scenegraph APIs Groupware Information technology management Software using the MIT license Virtual world communities